//求链表的中间节点
class Solution3 {
    //法二：快慢指针，快指针一次走两步，慢指针一次走一步
    public ListNode middleNode(ListNode head) {
        ListNode fast = head;
        ListNode slow = head;
        while(fast != null && fast.next != null){
            fast = fast.neSxt.next;
            slow = slow.next;
        }
        return slow;
    }

    //法一：先求整个链表的长度，再求长度/2找到这个中间节点
//    public ListNode middleNode(ListNode head){
//        ListNode cur = head;
//        int count = 0;
//        while(cur!=null){
//            count ++;
//            cur = cur.next;
//        }
//        for (int i = 0; i < count/2; i++) {
//            cur = cur.next;
//        }
//        return cur;
//    }

}